grpc-go 时生成的 pb.go 文件中结构的字段都有 json:",omitempy"
的 tag,例如:
1 | type HelloReply struct { |
在某些情况可能需要将此结构转成 json 输出,并且需要当是零值时不要在 json 串中忽略此字段。
以上面结构为例,默认编码成的 json 串是 {}
,但需要的是 {"message":""}
。
开始想到的方法是用 shell 脚本删除 omitempty
,但此方法有可能多删除东西,并且不易管理。最后使用的方法是复制了 encoding/json
库的源码到新的库 my_json
,修改这一行中的 omitEmpty
为 false
。当需要忽略 omitempty
时,使用 my_json
库即可。
1 | fields = append(fields, fillField(field{ |